package com.arsn.myf.flow.service;

import com.arsn.myf.flow.entity.Flow;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * 任务接口层
 * @author zhongrj
 * @since 2022-11-04
 */
public interface CommonTaskService {

    /**
     * 签收任务（流程）
     * @param taskId 任务id
     * @return
     */
    boolean claimTask(String taskId);

    /**
     * 完成任务（流程）
     * @param flow
     * @return
     */
    boolean completeTask(Flow flow);

    /**
     * 已发事务列表页
     * @param page
     * @param flow
     * @return
     */
    IPage<Flow> selectSendPage(Page<Flow> page, Flow flow);

    /**
     * 待签收事务列表页
     * @param page
     * @param flow
     * @return
     */
    IPage<Flow> selectClaimPage(Page<Flow> page, Flow flow);

    /**
     * 待处理事务列表页
     * @param page
     * @param flow
     * @return
     */
    IPage<Flow> selectTodoPage(Page<Flow> page, Flow flow);

    /**
     * 办结事务列表页
     * @param page
     * @param flow
     * @return
     */
    IPage<Flow> selectDonePage(Page<Flow> page, Flow flow);

    /**
     * 历史流转列表
     * @param flow
     * @return
     */
    List<Flow> historyList(Flow flow);
}
